label: Don't leak clip regions
authorMatthias Clasen <mclasen@redhat.com>
Fri, 1 Sep 2017 19:32:48 +0000 (15:32 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Fri, 1 Sep 2017 19:34:13 +0000 (15:34 -0400)
This was introduced in the conversion to gsk.

gtk/gtklabel.c

index 4f87501eaec9b016976532d4cfd1e95808e1638f..a54fa291e44d72f41977b9942e89b8c82229e6ff 100644 (file)
@@ -3948,11 +3948,14 @@ gtk_label_snapshot (GtkWidget   *widget,
 
           range_clip = gdk_pango_layout_get_clip_region (priv->layout, lx, ly, range, 1);
           cairo_region_get_extents (range_clip, &clip_extents);
+
           gtk_snapshot_push_clip (snapshot, &GRAPHENE_RECT_FROM_RECT (&clip_extents), "Selected Text");
           gtk_snapshot_render_background (snapshot, context, x, 0, width, height);
           gtk_snapshot_render_layout (snapshot, context, lx, ly, priv->layout);
           gtk_snapshot_pop (snapshot);
 
+          cairo_region_destroy (range_clip);
+
           gtk_style_context_restore (context);
         }
       else if (info)
@@ -3995,6 +3998,8 @@ gtk_label_snapshot (GtkWidget   *widget,
               gtk_snapshot_render_layout (snapshot, context, lx, ly, priv->layout);
               gtk_snapshot_pop (snapshot);
 
+              cairo_region_destroy (range_clip);
+
               gtk_style_context_restore (context);
             }